package view;

import javax.swing.text.*;
/**
 * Deze klasse zorgt ervoor dat een invoerveld niet meer karakters kan bevatten dan het meegegeven limiet.
 * Wordt gebruikt door bij een invoerveld de methode setDocument(new MaxAantalKarakters(limiet) te gebruiken.
 * @author Jaap
 *
 */
@SuppressWarnings("serial")
public class MaxAantalKarakters extends PlainDocument {
    private int limit;
    
    public MaxAantalKarakters(int limit) {
        super();
        this.limit = limit;
    }
    
    public MaxAantalKarakters(int limit, boolean upper) {
        super();
        this.limit = limit;
    }
    
    /**
     * Kijkt of de in te voeren String niet te lang is.
     * @author Jaap
     */
    public void insertString
            (int offset, String  str, AttributeSet attr)
            throws BadLocationException {
        if (str == null) return;
        
        if ((getLength() + str.length()) <= limit) {
            super.insertString(offset, str, attr);
        }
    }
}
